One or more aspects of the present invention relate to a computerized method for processing an execution request within different computing environments, a computer system for processing the computerized method, and a computer program product containing code portions to process the computerized method.
Data integrity is pivotal to the usefulness of any data processing system. It ensures that the data is free from any modification during transmission to or from storage devices and throughout its existence on the storage media. In the case of silent data corruption, data errors go undetected and unreported to the system and are not communicated to the software application.
Software or hardware errors may also corrupt data. Some of these errors only occur rarely or only in specific computing environments, for example, in a specific hardware or operating system. These sporadic errors may also be hard to detect.
A popular approach to detect such occurrences of silent data corruption or errors in software or hardware is to perform the same software operations on different computer systems and compare the results. This is usually achieved by testing the software to be analyzed within different computing environments. The results of the tests are compared to see if they are identical.
Consider that a computer system has multiple nodes, that is, separate computing environments, for parallel processing. A splitter component receives an original request and forwards it to the nodes. After processing the forwarded requests, each node sends back its result to the splitter component. The splitter component collects and compares the results to verify that they are identical.
However, such an approach has limited applicability for actual software systems, for example, web servers. In this case, a comparison of the results of the run of a software application to be analyzed on different systems must take into account non-deterministic elements.